/**
 * 账户余额相关类型定义
 */

/**
 * 账户余额信息
 */
export interface AccountBalance {
  /** 当前账户余额 */
  balance: number;
  /** 可用余额 */
  availableBalance?: number;
  /** 冻结余额 */
  frozenBalance?: number;
  /** 总余额（可用+冻结） */
  totalBalance?: number;
}

/**
 * 充值请求参数
 */
export interface RechargeRequest {
  /** 充值金额 */
  amount: number;
  /** 支付方式 */
  paymentMethod: 'ALIPAY' | 'WECHAT';
  /** 充值单号 */
  rechargeNo?: string;
}

/**
 * 充值响应
 */
export interface RechargeResponse {
  /** 交易ID */
  transaction_id: number;
  /** 充值单号 */
  recharge_no: string;
  /** 充值金额 */
  amount: number;
  /** 支付链接 */
  payment_url: string;
  /** 支付有效期 */
  expire_time: string;
}

/**
 * 充值记录
 */
export interface RechargeRecord {
  /** 充值单号 */
  recharge_no: string;
  /** 充值金额 */
  amount: number;
  /** 支付方式 */
  payment_method: string;
  /** 充值状态 */
  status: 'SUCCESS' | 'FAILED' | 'PENDING';
  /** 支付时间 */
  pay_time?: string;
  /** 创建时间 */
  created_at: string;
}

/**
 * 充值记录分页响应
 */
export interface RechargeRecordsResponse {
  /** 总条数 */
  total: number;
  /** 当前页码 */
  page: number;
  /** 每页条数 */
  limit: number;
  /** 记录列表 */
  list: RechargeRecord[];
}

/**
 * 余额变动记录
 */
export interface BalanceRecord {
  /** 记录ID */
  id: number;
  /** 交易单号 */
  transaction_no: string;
  /** 记录类型 */
  record_type: 'RECHARGE' | 'CONSUME' | 'FROZEN' | 'UNFROZEN' | 'REFUND' | 'GIFT';
  /** 记录类型描述 */
  record_type_desc: string;
  /** 变动金额（+表示增加，-表示减少） */
  amount: number;
  /** 变动前可用余额 */
  balance_before: number;
  /** 变动后可用余额 */
  balance_after: number;
  /** 变动前冻结金额 */
  frozen_before: number;
  /** 变动后冻结金额 */
  frozen_after: number;
  /** 业务描述 */
  business_desc: string;
  /** 交易状态 */
  status: 'SUCCESS' | 'PROCESSING' | 'FAILED' | 'PENDING';
  /** 创建时间 */
  created_at: string;
}

/**
 * 余额记录查询参数
 */
export interface BalanceRecordsQuery {
  /** 记录类型筛选 */
  record_type?: string;
  /** 开始日期 */
  start_date?: string;
  /** 结束日期 */
  end_date?: string;
  /** 当前页码 */
  page?: number;
  /** 每页条数 */
  limit?: number;
  /** 关键词搜索 */
  keyword?: string;
  /** 交易类型 */
  type?: string;
  /** 交易状态 */
  status?: string;
}

/**
 * 余额记录分页响应
 */
export interface BalanceRecordsResponse {
  /** 总条数 */
  total: number;
  /** 当前页码 */
  page: number;
  /** 每页条数 */
  pageSize: number;
  /** 余额汇总信息 */
  balance_summary?: {
    /** 可用余额 */
    available_balance: number;
    /** 冻结余额 */
    frozen_balance: number;
    /** 总余额 */
    total_balance: number;
  };
  /** 记录列表 */
  list: BalanceRecord[];
}

/**
 * 冻结余额请求
 */
export interface FreezeBalanceRequest {
  /** 冻结金额 */
  amount: number;
  /** 交易单号 */
  transaction_no: string;
  /** 业务描述 */
  business_desc: string;
}

/**
 * 冻结余额响应
 */
export interface FreezeBalanceResponse {
  /** 冻结金额 */
  frozen_amount: number;
  /** 冻结后可用余额 */
  available_balance: number;
  /** 冻结后总冻结金额 */
  frozen_balance: number;
}

/**
 * 解冻余额请求
 */
export interface UnfreezeBalanceRequest {
  /** 交易单号 */
  transaction_no: string;
  /** 业务描述 */
  business_desc: string;
}

/**
 * 解冻余额响应
 */
export interface UnfreezeBalanceResponse {
  /** 解冻金额 */
  unfrozen_amount: number;
  /** 解冻后可用余额 */
  available_balance: number;
  /** 解冻后总冻结金额 */
  frozen_balance: number;
}

/**
 * 余额退款/返还请求
 */
export interface RefundToBalanceRequest {
  /** 返还金额 */
  amount: number;
  /** 交易单号 */
  transaction_no: string;
  /** 业务描述 */
  business_desc: string;
}

/**
 * 余额退款/返还响应
 */
export interface RefundToBalanceResponse {
  /** 返还金额 */
  refund_amount: number;
  /** 返还后可用余额 */
  balance_after: number;
}

/**
 * 支付方式选项
 */
export interface PaymentMethod {
  /** 值 */
  value: string;
  /** 名称 */
  name: string;
  /** 图标 */
  icon: string;
}

/**
 * 余额统计信息
 */
export interface BalanceStatistics {
  /** 总收入 */
  totalIncome: number;
  /** 总支出 */
  totalExpense: number;
  /** 净收入 */
  netIncome: number;
  /** 交易笔数 */
  totalCount: number;
}